/*
 * 版权所有(C)，上海海鼎信息工程股份有限公司，lizhixing，所有权利保留。
 * <p>
 * 项目名：	boot-demo
 * 文件名：	HealthCheck
 * 模块说明：
 * 修改历史：
 * 2022/6/13 - lizhixing - 创建。
 */
package com.lovely602.boot.bootdemo.health;

import org.springframework.boot.actuate.health.Health;
import org.springframework.boot.actuate.health.HealthIndicator;
import org.springframework.stereotype.Component;

import lombok.extern.slf4j.Slf4j;

/**
 * @author lizhixing
 */
@Slf4j
@Component
public class HealthCheck implements HealthIndicator {
  @Override
  public Health getHealth(boolean includeDetails) {
    return HealthIndicator.super.getHealth(includeDetails);
  }

  @Override
  public Health health() {
    try {
      long totalSpace = checkTotalSpace();
      Health.Builder builder = Health.up();
      builder.withDetail("totalSpace", totalSpace);
      return builder.build();
    } catch (Exception e) {
      log.error("健康检查失败", e);
      return Health.down(e).build();
    }

  }

  /**
   * 检查可用空间
   * 
   * @return 可用空间
   */
  private long checkTotalSpace() {
    return 1000L;
  }
}
